Practical domain-specific debuggers using the Moldable Debugger framework
نویسندگان
چکیده
Understanding the run-time behaviour of software systems can be a challenging activity. Debuggers are an essential category of tools used for this purpose as they give developers direct access to the running systems. Nevertheless, traditional debuggers rely on generic mechanisms to introspect and interact with the running systems, while developers reason about and formulate domain-specific questions using concepts and abstractions from their application domains. This mismatch creates an abstraction gap between the debugging needs and the debugging support leading to an inefficient and error-prone debugging effort, as developers need to recover concrete domain concepts using generic mechanisms. To reduce this gap, and increase the efficiency of the debugging process, we propose a framework for developing domain-specific debuggers, called the Moldable Debugger, that enables debugging at the level of the application domain. The Moldable Debugger is adapted to a domain by creating and combining domain-specific debugging operations with domain-specific debugging views, and adapts itself to a domain by selecting, at run time, appropriate debugging operations and views. To ensure the proposed model has practical applicability (i.e., can be used in practice to build real debuggers), we discuss, from both a performance and usability point of view, three implementation strategies. We further motivate the need for domain-specific debugging, identify a set of key requirements and show how our approach improves debugging by adapting the debugger to several domains.
منابع مشابه
The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers
Debuggers are crucial tools for developing object-oriented software systems as they give developers direct access to the running systems. Nevertheless, traditional debuggers rely on generic mechanisms to explore and exhibit the execution stack and system state, while developers reason about and formulate domain-specific questions using concepts and abstractions from their application domains. T...
متن کاملMoldable Debugging
Programming languages evolved towards letting developers design software applications in terms of domain abstractions. What about development tools? While developers express software using programming languages, they craft software exclusively by interacting with development tools. Unfortunately, all too often developers rely on rigid development tools, focused on programming language construct...
متن کاملDemonstration of a Domain-Specific Language Debugging Framework
This demonstration presents a debugging framework that targets domain-specific languages (DSLs). The DSL Debugging Framework (DDF) generates debuggers automatically from DSL grammar specifications. The debugging concern is weaved into a base grammar in an aspect-oriented style. DDF was used to generate debuggers for three different types of DSLs (imperative, declarative, and hybrid) that are tr...
متن کاملGrammar-driven generation of domain-specific language debuggers
Domain-Specific Languages (DSLs) assist a software developer (or end-user) in writing a program using idioms that are similar to the abstractions found in a specific problem domain. Tool support for DSLs is lacking when compared to the capabilities provided for standard General-Purpose Languages (GPLs), such as Java and C++. For example, support for debugging a program written in a DSL is often...
متن کاملExtensible Debuggers for Extensible Languages
Language extension enables integration of new language constructs without invasive changes to a base language (e. g., C). Such extensions help to build more reliable software by using proper domain-specific abstractions. Language workbenches significantly reduce the effort forions. Language workbenches significantly reduce the effort for building such extensible languages by synthesizing a full...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Computer Languages, Systems & Structures
دوره 44 شماره
صفحات -
تاریخ انتشار 2015